//1.ts基础数据类型
//1.1.布尔值 boolean
//作用域 变量名：类型 = 变量值
let isDone: boolean = true;
console.log(isDone);

//1.2.数值型 number ts里所有数字都是浮点数 数字可以是10，16，2，8进制
let decLiteral: number = 6;
let hexLiteral: number = 0xf00d;
let binaryLiteral: number = 0b1010;
let octalLiteral: number = 0o744;
console.log(decLiteral);

//1.3.字符串 string 可以使用"或'来包裹字符串数据
let myname: string = "zgc";
//1.3.1模板字符串 使用``反引号来包裹字符串，它里面可以嵌入${}这种表达式
let sentence: string = `my name is ${myname}`;
console.log(sentence);

//1.4.数组 类型[] 例如number[],string[]
let numberArray: number[] = [1,2,3,4.5];
let stringArray: string[] = ["aaa","bbb","ccc"];
console.log(numberArray);
console.log(stringArray);
//1.4.1.数组泛型Array<类型> 例如Array<number>,Array<string>
let numbers: Array<number> = [5,4,3,2,1];
let strings: Array<string> = ["ccc","bbb","aaa"];
console.log(numbers);
console.log(strings);

//1.5.元组 元组类型允许表示一个已知元素数量和类型的数组 例如[string,number,number...];
let info: [string,number,number] = ["zgc",23,1];
let info_name: string = info[0].substr(1);
let info_age: number = info[1];
let info_gender: number = info[2];
console.log(info);
console.log(info_name+":"+info_age+":"+info_gender);

//1.6.枚举类型
//1.6.1.使用enum关键字定义枚举类型
enum Color {Red,Green,Bule};
let color: Color = Color.Bule;//只能获取元素所在枚举类的索引值
console.log("color="+color);
let stringColor: string = Color[2];//获取元素
console.log(stringColor);

//1.7.任意类型 any 我们不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查。 那么我们可以使用any类型来标记这些变量
let notSure: any = 4;
notSure="hello";//如果是已知类型，则不能赋值其它类型的值
console.log(notSure);
//1.7.1.只知道一部分数据的类型时，any类型也是有用的。 比如，你有一个数组，它包含了不同的类型的数据：
let list: any[] = [1,2,"hello",true];
console.log(list);

